# 需求：
# 有两个参数：手机号和密码
# 手机号的测试数据有三个，密码的测试数据也有三个
# 最后组装成元组列表类型的数据作为最终的测试数据: [(手机号1,密码1),(手机号2,密码2),...]
# 计算总共有几种场景（即组合数量）

# 定义手机号和密码
phone_list = ['13880001111', '13999992222', '15099993333']
password_list = ['123456', '456def', 'aaaaaa']

# 0. 定义空列表，用来存放组合数据
result = []

# 1. 遍历手机号
for i in phone_list:
    # 2. 遍历密码
    for j in password_list:
        # 3. 账号和密码的全组合
        element = (i, j)
        result.append(element)

# 打印结果
print("最终测试数据：")
print(result)

# 计算组合数量
print("总共有的测试场景数：", len(result))

# -----------------------------------------------------
# 列表推导式：Python中构造列表数据的一种简洁方法

# 案例：从1~10中获取每个整数的平方，保存到列表中

# 方式1：for循环
res1 = []
for i in range(1, 11):
    res1.append(i ** 2)
print("平方列表（for循环）：", res1)

# 方式2：列表推导式
res2 = [i ** 2 for i in range(1, 11)]
print("平方列表（推导式）：", res2)

# 方式3：带条件的推导式（只取偶数平方）
res3 = [i ** 2 for i in range(1, 11) if i % 2 == 0]
print("偶数平方列表（带条件）：", res3)

# 方式4：双层推导式（手机号与密码全组合）
result1 = [(i, j) for i in phone_list for j in password_list]
print("手机号与密码组合（推导式）：", result1)
